const path = require('path')

module.exports = {
    transpileDependencies: ['element-ui'],


    publicPath: '/', // 基本路径,打包时加上.
    outputDir: process.env.outputDir, // 输出文件目录
    lintOnSave: false, // eslint-loader 是否在保存的时候检查

    // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
    // webpack配置
    chainWebpack: (config) => {
        config.resolve.symlinks(true)
        config.plugin("html").tap(args => {
            // 修复 Lazy loading routes Error
            args[0].chunksSortMode = "none";
            return args;
        });

    },
    configureWebpack: (config) => {
        if (process.env.VUE_APP_MODE === 'production') {
            // 为生产环境修改配置...
            config.mode = 'production'
        } else {
            // 为开发环境修改配置...
            config.mode = 'development'
        }
        Object.assign(config, {
            // 开发生产共同配置
            resolve: {
                alias: {
                    '@': path.resolve(__dirname, './src'),
                    '@cm': path.resolve(__dirname, './src/components_modules'),
                    '@p': path.resolve(__dirname, './src/views'),
                    '@u': path.resolve(__dirname, './src/utils'),
                    '@a': path.resolve(__dirname, './src/api'),
                    '@cb': path.resolve(__dirname, './src/components_basics')
                }, // 别名配置

            }
        })
    },
    productionSourceMap: false, // 生产环境是否生成 sourceMap 文件
    // css相关配置
    css: {
        // extract: true, // 是否使用css分离插件 ExtractTextPlugin
        sourceMap: false, // 开启 CSS source maps?
        loaderOptions: {
            css: {}, // 这里的选项会传递给 css-loader
            postcss: {
                plugins: [
                    // 把px单位换算成rem单位
                    // require('postcss-pxtorem')({
                    //   rootValue: 75, // 换算的基数(设计图750的根字体为32)
                    //   // selectorBlackList: [''], // 要忽略的选择器并保留为px。
                    //   propList: ['*'], // 可以从px更改为rem的属性。
                    //   minPixelValue: 2 // 设置要替换的最小像素值。
                    // }),
                ]

            }
        },
        loaderOptions: {
            less: {
                // `globalVars` 定义全局对象，可加入全局变量
            }
        },

        requireModuleExtension: true
    },
    parallel: require('os').cpus().length > 1, // 是否为 Babel 或 TypeScript 使用 thread-loader。该选项在系统的 CPU 有多于一个内核时自动启用，仅作用于生产构建。
    pwa: {
        iconPaths: {
            favicon32: 'favicon.ico',
            favicon16: 'favicon.ico',
            appleTouchIcon: 'favicon.ico',
            maskIcon: 'favicon.ico',
            msTileImage: 'favicon.ico'
        }
    }, // PWA 插件相关配置 see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
    // webpack-dev-server 相关配置
    devServer: {
        compress: true,
        contentBase: './', //项目基本访问目录
        disableHostCheck: true,
        // hotOnly: true, // 热更新
        // open: true, // 自动打开浏览器
        // host: "192.168.124.7",
        port: 8080, // 端口
        https: false, // 启用https
        overlay: {
            warnings: true,
            errors: true
        }, // 错误、警告在页面弹出
        // proxy: {
        // [process.env.VUE_APP_MODE]: {
        //     target: `http://cs.ep.eichong.com:2482/api`,
        //     changeOrigin: true,
        //     pathRewrite: {//看后台是否有，决定是否重写
        //         ["^" + process.env.VUE_APP_API_URL]: ""
        //     }
        // }
    },
    // 第三方插件配置
    pluginOptions: {},

}